package com.ruoyi.factorydata.domain.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Date;
import java.util.List;

@AllArgsConstructor
@NoArgsConstructor
@Builder
@Data
public class MaterialDataVo {

    private static final long serialVersionUID = 1L;

    /**
     * 主键ID
     */
    private Long id;

    /**
     * 物料编码
     */
    @Excel(name = "物料编码")
    private String materialCode;

    /**
     * 物料名称
     */
    @Excel(name = "物料名称")
    private String materialName;

    /**
     * 物料类型
     */
    @Excel(name = "物料类型")
    private String materialType;

    @Excel(name = "物料类型名称")
    private String materialTypeName;

    /**
     * 分类ID
     */
    @Excel(name = "分类ID")
    private Long categoryId;

    @Excel(name = "分类名称")
    private String categoryName;

    /**
     * 制造方式
     */
    @Excel(name = "制造方式")
    private String manufacturingMethod;

    @Excel(name = "制造方式名称")
    private String manufacturingMethodName;

    /**
     * 计量单位
     */
    @Excel(name = "计量单位")
    private Long materialUnit;

    @Excel(name = "计量单位名称")
    private String materialUnitName;

    /**
     * 生效日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "生效日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date effectiveDate;

    /**
     * 失效日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "失效日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date expirationDate;

    /**
     * 物料型号
     */
    @Excel(name = "物料型号")
    private String materialModel;

    /**
     * 国际码
     */
    @Excel(name = "国际码")
    private String internationalCode;

    /**
     * 物料规格
     */
    @Excel(name = "物料规格")
    private String materialSpecification;

    /**
     * 物料品牌
     */
    @Excel(name = "物料品牌")
    private String materialBrand;

    /**
     * 库存数量
     */
    @Excel(name = "库存数量")
    private Long stockNumber;
    /**
     * 供应商
     */
    @Excel(name = "供应商")
    private Long supplierId;

    @Excel(name = "供应商名称")
    private String supplierName;

    @Excel(name = "客户")
    private Long customerId;
    @Excel(name = "客户编码")
    private String customerCode;


    /**
     * 状态： 0-未启用 1-启用
     */
    @Excel(name = "状态： 0-未启用 1-启用")
    private String materialStatus;

    /**
     * 物料图片
     */
    @Excel(name = "物料图片")
    private String materialImages;

    /**
     * 物料附件
     */
    @Excel(name = "物料附件")
    private String materialAttachments;

    /**
     * 库存数量
     */
    private Long stockQuantity;
    /**
     * 删除标志（0代表存在 2代表删除）
     */
    private String delFlag;

    /**
     * 版本号
     */
    private Long version;

    /**
     * 创建者
     */
    private String createBy;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    /**
     * 更新者
     */
    private String updateBy;

    /**
     * 更新时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;

    /**
     * 备注
     */
    private String remark;

    List<CraftRouteVo> craftRouteVos;

    List<ProductionBomVo> productionBomVos;
}
